// pages/playlist/playlist.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    msg: '',
    songList:[],
    picItem:[
      "/images/list1.jpg",
      "/images/list1.jpg",
      "/images/list1.jpg",
      "/images/list1.jpg",
      "/images/list1.jpg",
    ],
    songPic: '',
    id: '1948119377',
    idList: [1948119377,1950633235,1463165983,417859631,1332424898,1833633769,1412264741,28059417,109714,32507737,472137697,,29534637,110207,191248,191060,191252,390345,29814898],
    playFlag: true,  //音乐播放标识
    playStyle: 0,//歌曲播放形式的判断标识，0 列表循环 1  单曲循环 2  随机播放
    loopFlag: false,
    randomList: [],
    songer:'',
  },
  music: '',
  toSearch: function () {
    wx.navigateTo({
      url: '/pages/playList/playList',
    })
  },
  recommend: function () {
    wx.navigateTo({
      url: '/pages/recommend/recommend',
    })
  },
loop: function () {
  var num = this.data.playStyle
  //如果playStyle属性值为1，loopFlag改为true 单曲循环
  this.setData({
    playStyle: (num + 1) % 3,
    loopFlag: (num + 1) % 3 == 1 ? true : false
  })
},
//音乐播放结束
musicEnd: function () {
  //单曲循环
  if(this.data.playStyle == 1){
    return
  }else{
    //列表循环//随机播放
    this.nextMusic()
  }
},
//请求歌曲数据
search: function () {
  var id = this.data.id
  wx.request({
    url: 'https://music.163.com/api/song/detail/?id=' + id + '&ids=[' + id + ']',
          success:(res) =>{
            console.log(res);
            this.setData({
              // 歌曲名称
              songName: res.data.songs[0].name,
              // 歌曲专辑图片
              albumPic: res.data.songs[0].album.picUrl,
              songer:res.data.songs[0].artists[0].name
            })
          }
  })
},
  topMusic: function () {
    var nowid = this.data.id * 1 // 数据隐式转换，id第一次进入是字符串类型，需要改为数字类型
    var randomList =this.data.randomList
    var idList = this.data.idList
    if(this.data.playStyle == 2){
      // 去除列表中第一个歌曲id
      randomList.shift()
      if(randomList.length <= 0){
        var index1 = idList.indexOf(nowid)
        // 如果当前歌曲是列表中最后一首歌，点击后播放第一首歌
        if(index1 == 0){
          var index2 = idList.length - 1
        }else{
          var index2 = index1 - 1
        }
        var nextId = idList[index2]
      }else{
        var nextId = randomList[0]
      }
    }else{
      // 获取当前歌曲在列表中的下标
      // indexOf()方法寻找数据返回下标时，需要数据类型保持一致
      var index1 = idList.indexOf(nowid)
      // 如果当前歌曲是列表中最后一首歌，点击后播放第一首歌
      if(index1 == 0){
        var index2 = idList.length - 1
      }else{
        var index2 = index1 - 1
      }
      var nextId = idList[index2]
    }
    // 更新歌曲id
    this.setData({
      id: nextId
    })
    // 请求新歌数据
    this.search()
    // 歌曲播放
    this.music.play()
    this.setData({
      playFlag: false
    })
  },
  //点击下一首
  nextMusic: function () {
    //数据隐式转换，id第一次为字符串类型，需转为数字
    var nowid = this.data.id * 1
    var idList = this.data.idList
    var randomList = this.data.randomList
    //获取当前歌曲在列表中的下标
    //indexOF()方法寻找数据返回下标时，需要数据类型保持一致
    var index1 = idList.indexOf(nowid)
    //判断随机播放的
    if(this.data.playStyle == 2){
      var length = idList.length
      //生成0-idList.length的随机整数
      var num = Math.floor(Math.random() * length)
      //下一首歌的id下标
      // var index2 = num == index1 ? num + 1 : num
      if(num == index1 && num == length-1){
        var index2 = 0
      }else if(num == index1 && index1 != length - 1){
        var index2 = index1 + 1
      }else{
        var index2 = num
      }
      //
      randomList.unshift(idList[index2])
    }else{
      //如果当前歌曲是列表中最后一首歌，点击下一首播放第一首歌
      if(index1 == idList.length - 1){
        var index2 = 0
      }else{
       var index2 = index1 + 1
      }
    }
    var nextId = idList[index2] 
    //更新歌曲id
    this.setData({
      id: nextId,
    })
    //请求数据
    this.search()
    //歌曲播放
    this.music.play()
    this.setData({
      playFlag: false
    })
  },
  errorMusic: function () {
    wx.showToast({
      title: '歌曲播放失败',
      icon: 'error',
      duration: 2000,
      success: () => {
        this.nextMusic()
      }
    })
  },
  playOrPause: function () {
    //点击播放或暂停按钮是时，判断音乐播放状态
    //true播放  false暂停
    console.log(this);
    if(this.data.playFlag){
      this.music.play()//暂停
    }else{
      this.music.pause()//开始
    }
    //更改点击后的音乐状态
    this.setData({
      playFlag: !this.data.playFlag
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () { 
    //创建音乐标签实例，通过ID名找到页面中的audio标签
    console.log(this.music);
    this.music = wx.createAudioContext('music')
    this.search()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // console.log(options);
    var that = this
    wx.getStorage({
      key: 'songIdList',
      success(res){
        console.log(res.data[0]);
        that.setData({
          idList:res.data,
          id:res.data[0]
        })
        console.log(that.data.idList);
        console.log(that.data.id);
      }
    })
    wx.getStorage({
      key: 'songId',
      success: (res) => {
        this.setData({
          id:res.data
        })
        this.search()
      }
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})